package com.netease.contract.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class LoanCriteria {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public LoanCriteria() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Long value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Long value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Long value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Long value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Long value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Long> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Long> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Long value1, Long value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Long value1, Long value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIsNull() {
            addCriterion("merchant_id is null");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIsNotNull() {
            addCriterion("merchant_id is not null");
            return (Criteria) this;
        }

        public Criteria andMerchantIdEqualTo(Long value) {
            addCriterion("merchant_id =", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotEqualTo(Long value) {
            addCriterion("merchant_id <>", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdGreaterThan(Long value) {
            addCriterion("merchant_id >", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdGreaterThanOrEqualTo(Long value) {
            addCriterion("merchant_id >=", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdLessThan(Long value) {
            addCriterion("merchant_id <", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdLessThanOrEqualTo(Long value) {
            addCriterion("merchant_id <=", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIn(List<Long> values) {
            addCriterion("merchant_id in", values, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotIn(List<Long> values) {
            addCriterion("merchant_id not in", values, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdBetween(Long value1, Long value2) {
            addCriterion("merchant_id between", value1, value2, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotBetween(Long value1, Long value2) {
            addCriterion("merchant_id not between", value1, value2, "merchantId");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNull() {
            addCriterion("product_code is null");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNotNull() {
            addCriterion("product_code is not null");
            return (Criteria) this;
        }

        public Criteria andProductCodeEqualTo(String value) {
            addCriterion("product_code =", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotEqualTo(String value) {
            addCriterion("product_code <>", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThan(String value) {
            addCriterion("product_code >", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThanOrEqualTo(String value) {
            addCriterion("product_code >=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThan(String value) {
            addCriterion("product_code <", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThanOrEqualTo(String value) {
            addCriterion("product_code <=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLike(String value) {
            addCriterion("product_code like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotLike(String value) {
            addCriterion("product_code not like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeIn(List<String> values) {
            addCriterion("product_code in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotIn(List<String> values) {
            addCriterion("product_code not in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeBetween(String value1, String value2) {
            addCriterion("product_code between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotBetween(String value1, String value2) {
            addCriterion("product_code not between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdIsNull() {
            addCriterion("repayment_card_id is null");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdIsNotNull() {
            addCriterion("repayment_card_id is not null");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdEqualTo(Long value) {
            addCriterion("repayment_card_id =", value, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdNotEqualTo(Long value) {
            addCriterion("repayment_card_id <>", value, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdGreaterThan(Long value) {
            addCriterion("repayment_card_id >", value, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdGreaterThanOrEqualTo(Long value) {
            addCriterion("repayment_card_id >=", value, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdLessThan(Long value) {
            addCriterion("repayment_card_id <", value, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdLessThanOrEqualTo(Long value) {
            addCriterion("repayment_card_id <=", value, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdIn(List<Long> values) {
            addCriterion("repayment_card_id in", values, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdNotIn(List<Long> values) {
            addCriterion("repayment_card_id not in", values, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdBetween(Long value1, Long value2) {
            addCriterion("repayment_card_id between", value1, value2, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andRepaymentCardIdNotBetween(Long value1, Long value2) {
            addCriterion("repayment_card_id not between", value1, value2, "repaymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdIsNull() {
            addCriterion("payment_card_id is null");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdIsNotNull() {
            addCriterion("payment_card_id is not null");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdEqualTo(Long value) {
            addCriterion("payment_card_id =", value, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdNotEqualTo(Long value) {
            addCriterion("payment_card_id <>", value, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdGreaterThan(Long value) {
            addCriterion("payment_card_id >", value, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdGreaterThanOrEqualTo(Long value) {
            addCriterion("payment_card_id >=", value, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdLessThan(Long value) {
            addCriterion("payment_card_id <", value, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdLessThanOrEqualTo(Long value) {
            addCriterion("payment_card_id <=", value, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdIn(List<Long> values) {
            addCriterion("payment_card_id in", values, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdNotIn(List<Long> values) {
            addCriterion("payment_card_id not in", values, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdBetween(Long value1, Long value2) {
            addCriterion("payment_card_id between", value1, value2, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andPaymentCardIdNotBetween(Long value1, Long value2) {
            addCriterion("payment_card_id not between", value1, value2, "paymentCardId");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialIsNull() {
            addCriterion("borrowing_object_serial is null");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialIsNotNull() {
            addCriterion("borrowing_object_serial is not null");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialEqualTo(String value) {
            addCriterion("borrowing_object_serial =", value, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialNotEqualTo(String value) {
            addCriterion("borrowing_object_serial <>", value, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialGreaterThan(String value) {
            addCriterion("borrowing_object_serial >", value, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialGreaterThanOrEqualTo(String value) {
            addCriterion("borrowing_object_serial >=", value, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialLessThan(String value) {
            addCriterion("borrowing_object_serial <", value, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialLessThanOrEqualTo(String value) {
            addCriterion("borrowing_object_serial <=", value, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialLike(String value) {
            addCriterion("borrowing_object_serial like", value, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialNotLike(String value) {
            addCriterion("borrowing_object_serial not like", value, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialIn(List<String> values) {
            addCriterion("borrowing_object_serial in", values, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialNotIn(List<String> values) {
            addCriterion("borrowing_object_serial not in", values, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialBetween(String value1, String value2) {
            addCriterion("borrowing_object_serial between", value1, value2, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andBorrowingObjectSerialNotBetween(String value1, String value2) {
            addCriterion("borrowing_object_serial not between", value1, value2, "borrowingObjectSerial");
            return (Criteria) this;
        }

        public Criteria andSerialIsNull() {
            addCriterion("serial is null");
            return (Criteria) this;
        }

        public Criteria andSerialIsNotNull() {
            addCriterion("serial is not null");
            return (Criteria) this;
        }

        public Criteria andSerialEqualTo(String value) {
            addCriterion("serial =", value, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialNotEqualTo(String value) {
            addCriterion("serial <>", value, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialGreaterThan(String value) {
            addCriterion("serial >", value, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialGreaterThanOrEqualTo(String value) {
            addCriterion("serial >=", value, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialLessThan(String value) {
            addCriterion("serial <", value, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialLessThanOrEqualTo(String value) {
            addCriterion("serial <=", value, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialLike(String value) {
            addCriterion("serial like", value, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialNotLike(String value) {
            addCriterion("serial not like", value, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialIn(List<String> values) {
            addCriterion("serial in", values, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialNotIn(List<String> values) {
            addCriterion("serial not in", values, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialBetween(String value1, String value2) {
            addCriterion("serial between", value1, value2, "serial");
            return (Criteria) this;
        }

        public Criteria andSerialNotBetween(String value1, String value2) {
            addCriterion("serial not between", value1, value2, "serial");
            return (Criteria) this;
        }

        public Criteria andRateIsNull() {
            addCriterion("rate is null");
            return (Criteria) this;
        }

        public Criteria andRateIsNotNull() {
            addCriterion("rate is not null");
            return (Criteria) this;
        }

        public Criteria andRateEqualTo(BigDecimal value) {
            addCriterion("rate =", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotEqualTo(BigDecimal value) {
            addCriterion("rate <>", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateGreaterThan(BigDecimal value) {
            addCriterion("rate >", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("rate >=", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateLessThan(BigDecimal value) {
            addCriterion("rate <", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateLessThanOrEqualTo(BigDecimal value) {
            addCriterion("rate <=", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateIn(List<BigDecimal> values) {
            addCriterion("rate in", values, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotIn(List<BigDecimal> values) {
            addCriterion("rate not in", values, "rate");
            return (Criteria) this;
        }

        public Criteria andRateBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("rate between", value1, value2, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("rate not between", value1, value2, "rate");
            return (Criteria) this;
        }

        public Criteria andPeriodIsNull() {
            addCriterion("period is null");
            return (Criteria) this;
        }

        public Criteria andPeriodIsNotNull() {
            addCriterion("period is not null");
            return (Criteria) this;
        }

        public Criteria andPeriodEqualTo(Integer value) {
            addCriterion("period =", value, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodNotEqualTo(Integer value) {
            addCriterion("period <>", value, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodGreaterThan(Integer value) {
            addCriterion("period >", value, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodGreaterThanOrEqualTo(Integer value) {
            addCriterion("period >=", value, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodLessThan(Integer value) {
            addCriterion("period <", value, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodLessThanOrEqualTo(Integer value) {
            addCriterion("period <=", value, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodIn(List<Integer> values) {
            addCriterion("period in", values, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodNotIn(List<Integer> values) {
            addCriterion("period not in", values, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodBetween(Integer value1, Integer value2) {
            addCriterion("period between", value1, value2, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodNotBetween(Integer value1, Integer value2) {
            addCriterion("period not between", value1, value2, "period");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeIsNull() {
            addCriterion("period_type is null");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeIsNotNull() {
            addCriterion("period_type is not null");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeEqualTo(Integer value) {
            addCriterion("period_type =", value, "periodType");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeNotEqualTo(Integer value) {
            addCriterion("period_type <>", value, "periodType");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeGreaterThan(Integer value) {
            addCriterion("period_type >", value, "periodType");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("period_type >=", value, "periodType");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeLessThan(Integer value) {
            addCriterion("period_type <", value, "periodType");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeLessThanOrEqualTo(Integer value) {
            addCriterion("period_type <=", value, "periodType");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeIn(List<Integer> values) {
            addCriterion("period_type in", values, "periodType");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeNotIn(List<Integer> values) {
            addCriterion("period_type not in", values, "periodType");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeBetween(Integer value1, Integer value2) {
            addCriterion("period_type between", value1, value2, "periodType");
            return (Criteria) this;
        }

        public Criteria andPeriodTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("period_type not between", value1, value2, "periodType");
            return (Criteria) this;
        }

        public Criteria andRepayMethodIsNull() {
            addCriterion("repay_method is null");
            return (Criteria) this;
        }

        public Criteria andRepayMethodIsNotNull() {
            addCriterion("repay_method is not null");
            return (Criteria) this;
        }

        public Criteria andRepayMethodEqualTo(Integer value) {
            addCriterion("repay_method =", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodNotEqualTo(Integer value) {
            addCriterion("repay_method <>", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodGreaterThan(Integer value) {
            addCriterion("repay_method >", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodGreaterThanOrEqualTo(Integer value) {
            addCriterion("repay_method >=", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodLessThan(Integer value) {
            addCriterion("repay_method <", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodLessThanOrEqualTo(Integer value) {
            addCriterion("repay_method <=", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodIn(List<Integer> values) {
            addCriterion("repay_method in", values, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodNotIn(List<Integer> values) {
            addCriterion("repay_method not in", values, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodBetween(Integer value1, Integer value2) {
            addCriterion("repay_method between", value1, value2, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodNotBetween(Integer value1, Integer value2) {
            addCriterion("repay_method not between", value1, value2, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceIsNull() {
            addCriterion("repay_in_advance is null");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceIsNotNull() {
            addCriterion("repay_in_advance is not null");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceEqualTo(Integer value) {
            addCriterion("repay_in_advance =", value, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceNotEqualTo(Integer value) {
            addCriterion("repay_in_advance <>", value, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceGreaterThan(Integer value) {
            addCriterion("repay_in_advance >", value, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceGreaterThanOrEqualTo(Integer value) {
            addCriterion("repay_in_advance >=", value, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceLessThan(Integer value) {
            addCriterion("repay_in_advance <", value, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceLessThanOrEqualTo(Integer value) {
            addCriterion("repay_in_advance <=", value, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceIn(List<Integer> values) {
            addCriterion("repay_in_advance in", values, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceNotIn(List<Integer> values) {
            addCriterion("repay_in_advance not in", values, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceBetween(Integer value1, Integer value2) {
            addCriterion("repay_in_advance between", value1, value2, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andRepayInAdvanceNotBetween(Integer value1, Integer value2) {
            addCriterion("repay_in_advance not between", value1, value2, "repayInAdvance");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateIsNull() {
            addCriterion("penalty_rate is null");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateIsNotNull() {
            addCriterion("penalty_rate is not null");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateEqualTo(BigDecimal value) {
            addCriterion("penalty_rate =", value, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateNotEqualTo(BigDecimal value) {
            addCriterion("penalty_rate <>", value, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateGreaterThan(BigDecimal value) {
            addCriterion("penalty_rate >", value, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("penalty_rate >=", value, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateLessThan(BigDecimal value) {
            addCriterion("penalty_rate <", value, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateLessThanOrEqualTo(BigDecimal value) {
            addCriterion("penalty_rate <=", value, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateIn(List<BigDecimal> values) {
            addCriterion("penalty_rate in", values, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateNotIn(List<BigDecimal> values) {
            addCriterion("penalty_rate not in", values, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("penalty_rate between", value1, value2, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyRateNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("penalty_rate not between", value1, value2, "penaltyRate");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeIsNull() {
            addCriterion("penalty_type is null");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeIsNotNull() {
            addCriterion("penalty_type is not null");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeEqualTo(Integer value) {
            addCriterion("penalty_type =", value, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeNotEqualTo(Integer value) {
            addCriterion("penalty_type <>", value, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeGreaterThan(Integer value) {
            addCriterion("penalty_type >", value, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("penalty_type >=", value, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeLessThan(Integer value) {
            addCriterion("penalty_type <", value, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeLessThanOrEqualTo(Integer value) {
            addCriterion("penalty_type <=", value, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeIn(List<Integer> values) {
            addCriterion("penalty_type in", values, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeNotIn(List<Integer> values) {
            addCriterion("penalty_type not in", values, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeBetween(Integer value1, Integer value2) {
            addCriterion("penalty_type between", value1, value2, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andPenaltyTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("penalty_type not between", value1, value2, "penaltyType");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysIsNull() {
            addCriterion("speedup_due_days is null");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysIsNotNull() {
            addCriterion("speedup_due_days is not null");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysEqualTo(Integer value) {
            addCriterion("speedup_due_days =", value, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysNotEqualTo(Integer value) {
            addCriterion("speedup_due_days <>", value, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysGreaterThan(Integer value) {
            addCriterion("speedup_due_days >", value, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysGreaterThanOrEqualTo(Integer value) {
            addCriterion("speedup_due_days >=", value, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysLessThan(Integer value) {
            addCriterion("speedup_due_days <", value, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysLessThanOrEqualTo(Integer value) {
            addCriterion("speedup_due_days <=", value, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysIn(List<Integer> values) {
            addCriterion("speedup_due_days in", values, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysNotIn(List<Integer> values) {
            addCriterion("speedup_due_days not in", values, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysBetween(Integer value1, Integer value2) {
            addCriterion("speedup_due_days between", value1, value2, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andSpeedupDueDaysNotBetween(Integer value1, Integer value2) {
            addCriterion("speedup_due_days not between", value1, value2, "speedupDueDays");
            return (Criteria) this;
        }

        public Criteria andApplyTimeIsNull() {
            addCriterion("apply_time is null");
            return (Criteria) this;
        }

        public Criteria andApplyTimeIsNotNull() {
            addCriterion("apply_time is not null");
            return (Criteria) this;
        }

        public Criteria andApplyTimeEqualTo(Date value) {
            addCriterion("apply_time =", value, "applyTime");
            return (Criteria) this;
        }

        public Criteria andApplyTimeNotEqualTo(Date value) {
            addCriterion("apply_time <>", value, "applyTime");
            return (Criteria) this;
        }

        public Criteria andApplyTimeGreaterThan(Date value) {
            addCriterion("apply_time >", value, "applyTime");
            return (Criteria) this;
        }

        public Criteria andApplyTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("apply_time >=", value, "applyTime");
            return (Criteria) this;
        }

        public Criteria andApplyTimeLessThan(Date value) {
            addCriterion("apply_time <", value, "applyTime");
            return (Criteria) this;
        }

        public Criteria andApplyTimeLessThanOrEqualTo(Date value) {
            addCriterion("apply_time <=", value, "applyTime");
            return (Criteria) this;
        }

        public Criteria andApplyTimeIn(List<Date> values) {
            addCriterion("apply_time in", values, "applyTime");
            return (Criteria) this;
        }

        public Criteria andApplyTimeNotIn(List<Date> values) {
            addCriterion("apply_time not in", values, "applyTime");
            return (Criteria) this;
        }

        public Criteria andApplyTimeBetween(Date value1, Date value2) {
            addCriterion("apply_time between", value1, value2, "applyTime");
            return (Criteria) this;
        }

        public Criteria andApplyTimeNotBetween(Date value1, Date value2) {
            addCriterion("apply_time not between", value1, value2, "applyTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeIsNull() {
            addCriterion("settle_time is null");
            return (Criteria) this;
        }

        public Criteria andSettleTimeIsNotNull() {
            addCriterion("settle_time is not null");
            return (Criteria) this;
        }

        public Criteria andSettleTimeEqualTo(Date value) {
            addCriterion("settle_time =", value, "settleTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeNotEqualTo(Date value) {
            addCriterion("settle_time <>", value, "settleTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeGreaterThan(Date value) {
            addCriterion("settle_time >", value, "settleTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("settle_time >=", value, "settleTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeLessThan(Date value) {
            addCriterion("settle_time <", value, "settleTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeLessThanOrEqualTo(Date value) {
            addCriterion("settle_time <=", value, "settleTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeIn(List<Date> values) {
            addCriterion("settle_time in", values, "settleTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeNotIn(List<Date> values) {
            addCriterion("settle_time not in", values, "settleTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeBetween(Date value1, Date value2) {
            addCriterion("settle_time between", value1, value2, "settleTime");
            return (Criteria) this;
        }

        public Criteria andSettleTimeNotBetween(Date value1, Date value2) {
            addCriterion("settle_time not between", value1, value2, "settleTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeIsNull() {
            addCriterion("due_time is null");
            return (Criteria) this;
        }

        public Criteria andDueTimeIsNotNull() {
            addCriterion("due_time is not null");
            return (Criteria) this;
        }

        public Criteria andDueTimeEqualTo(Date value) {
            addCriterionForJDBCDate("due_time =", value, "dueTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeNotEqualTo(Date value) {
            addCriterionForJDBCDate("due_time <>", value, "dueTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeGreaterThan(Date value) {
            addCriterionForJDBCDate("due_time >", value, "dueTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("due_time >=", value, "dueTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeLessThan(Date value) {
            addCriterionForJDBCDate("due_time <", value, "dueTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("due_time <=", value, "dueTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeIn(List<Date> values) {
            addCriterionForJDBCDate("due_time in", values, "dueTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeNotIn(List<Date> values) {
            addCriterionForJDBCDate("due_time not in", values, "dueTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("due_time between", value1, value2, "dueTime");
            return (Criteria) this;
        }

        public Criteria andDueTimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("due_time not between", value1, value2, "dueTime");
            return (Criteria) this;
        }

        public Criteria andContractIdIsNull() {
            addCriterion("contract_id is null");
            return (Criteria) this;
        }

        public Criteria andContractIdIsNotNull() {
            addCriterion("contract_id is not null");
            return (Criteria) this;
        }

        public Criteria andContractIdEqualTo(Long value) {
            addCriterion("contract_id =", value, "contractId");
            return (Criteria) this;
        }

        public Criteria andContractIdNotEqualTo(Long value) {
            addCriterion("contract_id <>", value, "contractId");
            return (Criteria) this;
        }

        public Criteria andContractIdGreaterThan(Long value) {
            addCriterion("contract_id >", value, "contractId");
            return (Criteria) this;
        }

        public Criteria andContractIdGreaterThanOrEqualTo(Long value) {
            addCriterion("contract_id >=", value, "contractId");
            return (Criteria) this;
        }

        public Criteria andContractIdLessThan(Long value) {
            addCriterion("contract_id <", value, "contractId");
            return (Criteria) this;
        }

        public Criteria andContractIdLessThanOrEqualTo(Long value) {
            addCriterion("contract_id <=", value, "contractId");
            return (Criteria) this;
        }

        public Criteria andContractIdIn(List<Long> values) {
            addCriterion("contract_id in", values, "contractId");
            return (Criteria) this;
        }

        public Criteria andContractIdNotIn(List<Long> values) {
            addCriterion("contract_id not in", values, "contractId");
            return (Criteria) this;
        }

        public Criteria andContractIdBetween(Long value1, Long value2) {
            addCriterion("contract_id between", value1, value2, "contractId");
            return (Criteria) this;
        }

        public Criteria andContractIdNotBetween(Long value1, Long value2) {
            addCriterion("contract_id not between", value1, value2, "contractId");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andAmountIsNull() {
            addCriterion("amount is null");
            return (Criteria) this;
        }

        public Criteria andAmountIsNotNull() {
            addCriterion("amount is not null");
            return (Criteria) this;
        }

        public Criteria andAmountEqualTo(BigDecimal value) {
            addCriterion("amount =", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountNotEqualTo(BigDecimal value) {
            addCriterion("amount <>", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountGreaterThan(BigDecimal value) {
            addCriterion("amount >", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("amount >=", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountLessThan(BigDecimal value) {
            addCriterion("amount <", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("amount <=", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountIn(List<BigDecimal> values) {
            addCriterion("amount in", values, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountNotIn(List<BigDecimal> values) {
            addCriterion("amount not in", values, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("amount between", value1, value2, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("amount not between", value1, value2, "amount");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceIsNull() {
            addCriterion("days_of_grace is null");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceIsNotNull() {
            addCriterion("days_of_grace is not null");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceEqualTo(Integer value) {
            addCriterion("days_of_grace =", value, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceNotEqualTo(Integer value) {
            addCriterion("days_of_grace <>", value, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceGreaterThan(Integer value) {
            addCriterion("days_of_grace >", value, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceGreaterThanOrEqualTo(Integer value) {
            addCriterion("days_of_grace >=", value, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceLessThan(Integer value) {
            addCriterion("days_of_grace <", value, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceLessThanOrEqualTo(Integer value) {
            addCriterion("days_of_grace <=", value, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceIn(List<Integer> values) {
            addCriterion("days_of_grace in", values, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceNotIn(List<Integer> values) {
            addCriterion("days_of_grace not in", values, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceBetween(Integer value1, Integer value2) {
            addCriterion("days_of_grace between", value1, value2, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andDaysOfGraceNotBetween(Integer value1, Integer value2) {
            addCriterion("days_of_grace not between", value1, value2, "daysOfGrace");
            return (Criteria) this;
        }

        public Criteria andOperationStatusIsNull() {
            addCriterion("operation_status is null");
            return (Criteria) this;
        }

        public Criteria andOperationStatusIsNotNull() {
            addCriterion("operation_status is not null");
            return (Criteria) this;
        }

        public Criteria andOperationStatusEqualTo(Integer value) {
            addCriterion("operation_status =", value, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andOperationStatusNotEqualTo(Integer value) {
            addCriterion("operation_status <>", value, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andOperationStatusGreaterThan(Integer value) {
            addCriterion("operation_status >", value, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andOperationStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("operation_status >=", value, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andOperationStatusLessThan(Integer value) {
            addCriterion("operation_status <", value, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andOperationStatusLessThanOrEqualTo(Integer value) {
            addCriterion("operation_status <=", value, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andOperationStatusIn(List<Integer> values) {
            addCriterion("operation_status in", values, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andOperationStatusNotIn(List<Integer> values) {
            addCriterion("operation_status not in", values, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andOperationStatusBetween(Integer value1, Integer value2) {
            addCriterion("operation_status between", value1, value2, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andOperationStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("operation_status not between", value1, value2, "operationStatus");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeIsNull() {
            addCriterion("borrowing_time is null");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeIsNotNull() {
            addCriterion("borrowing_time is not null");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeEqualTo(Date value) {
            addCriterion("borrowing_time =", value, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeNotEqualTo(Date value) {
            addCriterion("borrowing_time <>", value, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeGreaterThan(Date value) {
            addCriterion("borrowing_time >", value, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("borrowing_time >=", value, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeLessThan(Date value) {
            addCriterion("borrowing_time <", value, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeLessThanOrEqualTo(Date value) {
            addCriterion("borrowing_time <=", value, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeIn(List<Date> values) {
            addCriterion("borrowing_time in", values, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeNotIn(List<Date> values) {
            addCriterion("borrowing_time not in", values, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeBetween(Date value1, Date value2) {
            addCriterion("borrowing_time between", value1, value2, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andBorrowingTimeNotBetween(Date value1, Date value2) {
            addCriterion("borrowing_time not between", value1, value2, "borrowingTime");
            return (Criteria) this;
        }

        public Criteria andRepayDayIsNull() {
            addCriterion("repay_day is null");
            return (Criteria) this;
        }

        public Criteria andRepayDayIsNotNull() {
            addCriterion("repay_day is not null");
            return (Criteria) this;
        }

        public Criteria andRepayDayEqualTo(Integer value) {
            addCriterion("repay_day =", value, "repayDay");
            return (Criteria) this;
        }

        public Criteria andRepayDayNotEqualTo(Integer value) {
            addCriterion("repay_day <>", value, "repayDay");
            return (Criteria) this;
        }

        public Criteria andRepayDayGreaterThan(Integer value) {
            addCriterion("repay_day >", value, "repayDay");
            return (Criteria) this;
        }

        public Criteria andRepayDayGreaterThanOrEqualTo(Integer value) {
            addCriterion("repay_day >=", value, "repayDay");
            return (Criteria) this;
        }

        public Criteria andRepayDayLessThan(Integer value) {
            addCriterion("repay_day <", value, "repayDay");
            return (Criteria) this;
        }

        public Criteria andRepayDayLessThanOrEqualTo(Integer value) {
            addCriterion("repay_day <=", value, "repayDay");
            return (Criteria) this;
        }

        public Criteria andRepayDayIn(List<Integer> values) {
            addCriterion("repay_day in", values, "repayDay");
            return (Criteria) this;
        }

        public Criteria andRepayDayNotIn(List<Integer> values) {
            addCriterion("repay_day not in", values, "repayDay");
            return (Criteria) this;
        }

        public Criteria andRepayDayBetween(Integer value1, Integer value2) {
            addCriterion("repay_day between", value1, value2, "repayDay");
            return (Criteria) this;
        }

        public Criteria andRepayDayNotBetween(Integer value1, Integer value2) {
            addCriterion("repay_day not between", value1, value2, "repayDay");
            return (Criteria) this;
        }

        public Criteria andBillDaysIsNull() {
            addCriterion("bill_days is null");
            return (Criteria) this;
        }

        public Criteria andBillDaysIsNotNull() {
            addCriterion("bill_days is not null");
            return (Criteria) this;
        }

        public Criteria andBillDaysEqualTo(Integer value) {
            addCriterion("bill_days =", value, "billDays");
            return (Criteria) this;
        }

        public Criteria andBillDaysNotEqualTo(Integer value) {
            addCriterion("bill_days <>", value, "billDays");
            return (Criteria) this;
        }

        public Criteria andBillDaysGreaterThan(Integer value) {
            addCriterion("bill_days >", value, "billDays");
            return (Criteria) this;
        }

        public Criteria andBillDaysGreaterThanOrEqualTo(Integer value) {
            addCriterion("bill_days >=", value, "billDays");
            return (Criteria) this;
        }

        public Criteria andBillDaysLessThan(Integer value) {
            addCriterion("bill_days <", value, "billDays");
            return (Criteria) this;
        }

        public Criteria andBillDaysLessThanOrEqualTo(Integer value) {
            addCriterion("bill_days <=", value, "billDays");
            return (Criteria) this;
        }

        public Criteria andBillDaysIn(List<Integer> values) {
            addCriterion("bill_days in", values, "billDays");
            return (Criteria) this;
        }

        public Criteria andBillDaysNotIn(List<Integer> values) {
            addCriterion("bill_days not in", values, "billDays");
            return (Criteria) this;
        }

        public Criteria andBillDaysBetween(Integer value1, Integer value2) {
            addCriterion("bill_days between", value1, value2, "billDays");
            return (Criteria) this;
        }

        public Criteria andBillDaysNotBetween(Integer value1, Integer value2) {
            addCriterion("bill_days not between", value1, value2, "billDays");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdIsNull() {
            addCriterion("raise_rule_id is null");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdIsNotNull() {
            addCriterion("raise_rule_id is not null");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdEqualTo(String value) {
            addCriterion("raise_rule_id =", value, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdNotEqualTo(String value) {
            addCriterion("raise_rule_id <>", value, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdGreaterThan(String value) {
            addCriterion("raise_rule_id >", value, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdGreaterThanOrEqualTo(String value) {
            addCriterion("raise_rule_id >=", value, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdLessThan(String value) {
            addCriterion("raise_rule_id <", value, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdLessThanOrEqualTo(String value) {
            addCriterion("raise_rule_id <=", value, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdLike(String value) {
            addCriterion("raise_rule_id like", value, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdNotLike(String value) {
            addCriterion("raise_rule_id not like", value, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdIn(List<String> values) {
            addCriterion("raise_rule_id in", values, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdNotIn(List<String> values) {
            addCriterion("raise_rule_id not in", values, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdBetween(String value1, String value2) {
            addCriterion("raise_rule_id between", value1, value2, "raiseRuleId");
            return (Criteria) this;
        }

        public Criteria andRaiseRuleIdNotBetween(String value1, String value2) {
            addCriterion("raise_rule_id not between", value1, value2, "raiseRuleId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}